package com.eastfair.venueservice.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.venueservice.dto.BondConfigDTO;
import com.eastfair.venueservice.entity.BondConfig;
import com.eastfair.venueservice.vo.BondConfigVO;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 业务接口
 * 保证金配置
 * </p>
 *
 * @author dqq
 * @date 2023-04-17
 */
public interface BondConfigService extends SuperService<BondConfig> {

    /**
     * 查询保证金配置VO列表.
     *
     * @param query the params
     * @return the list
     */
    List<BondConfigVO> listBondConfigVO(BondConfigDTO query);

    /**
     * 查询保证金配置列表.
     *
     * @param bondConfigDTO the bond config dto
     * @return the list
     */
    List<BondConfig> listBondConfig(BondConfigDTO bondConfigDTO);

    /**
     * 展会ID，主场ID，面积查询保证金配置.
     *
     * @param exhibitionId the exhibition id
     * @param homeId       the home id
     * @param area         the area
     * @return the bond config
     */
    BondConfig getBySiteArea(Long exhibitionId, Long homeId, BigDecimal area);

    /**
     * 保存保证金配置.
     *
     * @param bondConfigDTO the bond config dto
     * @return the boolean
     */
    boolean saveBondConfig(BondConfigDTO bondConfigDTO);

    /**
     * 批量保存保证金配置.
     *
     * @param list the list
     * @return the boolean
     */
    boolean saveBatch(List<BondConfigDTO> list);

    /**
     * 展会ID，主场ID删除保证金配置.
     *
     * @param exhibitionId the exhibition id
     * @param homeId       the home id
     * @return the boolean
     */
    boolean removeByExhibitionIdAndHomeId(Long exhibitionId, Long homeId);
}
